home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byt86jan.arc / GCD.BAS < prev    next >
Encoding:
BASIC Source File  |  1985-12-27  |  1.4 KB  |  27 lines

  1. 310 '*******************************************************
  2. 320 '*   EUCLID'S ALGORITHM FOR GREATEST COMMON DIVISORS   *
  3. 330 '*               BY ROBERT T. KUROSAKA                 *
  4. 340 '*******************************************************
  5. 350 CLS
  6. 360 PRINT "This program calculates the greatest common divisor"
  7. 370 PRINT "of a positive fraction"
  8. 380 PRINT "and reduces the fraction to lowest terms."
  9. 390 PRINT :PRINT
  10. 400 INPUT "ENTER THE FRACTION'S NUMERATOR";NUM:NUM=ABS(NUM)
  11. 410 INPUT "ENTER THE FRACTION'S DENOMINATOR";DEN:DEN=ABS(DEN)
  12. 420 DIVISOR=NUM:DIVIDEND=DEN  'SAVE ORIGINAL VALUES FOR LATER DISPLAY
  13. 430 REM IF EITHER TERM IS NOT A WHOLE NUMBER, CLEAR THE DECIMAL.
  14. 440 IF DIVISOR<>INT(DIVISOR) OR DIVIDEND<>INT(DIVIDEND) THEN DIVISOR=DIVISOR*10:          DIVIDEND=DIVIDEND*10:NUM=DIVISOR:DEN=DIVIDEND:GOTO 440
  15. 450 IF DIVISOR>DIVIDEND THEN SWAP DIVISOR, DIVIDEND
  16. 460 WHILE DIVISOR>0
  17. 470     QUOTIENT=INT(DIVIDEND/DIVISOR)
  18. 480     REMAINDER=DIVIDEND-DIVISOR*QUOTIENT
  19. 490     DIVIDEND=DIVISOR:DIVISOR=REMAINDER
  20. 500 WEND
  21. 510 PRINT :PRINT
  22. 520 PRINT "THE FRACTION ";NUM;"/";DEN;" HAS A G.C.D. OF ";DIVIDEND
  23. 530 IF DIVIDEND=1 THEN PRINT "THE FRACTION IS ALREADY IN LOWEST TERMS.":GOTO 560
  24. 540 PRINT "THE REDUCED FRACTION IS: ";NUM/DIVIDEND;" /";DEN/DIVIDEND;
  25. 550 IF DEN/DIVIDEND=1 THEN PRINT " = ";NUM/DIVIDEND
  26. 560 END
  27.